package com.ruoyi.project.cms.sa.order.type.service;

import com.ruoyi.common.constant.CMSConstants;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.text.Convert;
import com.ruoyi.project.cms.sa.order.type.domain.Type;
import com.ruoyi.project.cms.sa.order.type.mapper.TypeMapper;
import com.ruoyi.project.system.post.domain.Post;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author ：MrL
 * 时间：2020-05-17
 */
@Service
public class TypeServiceImpl implements ITypeService{

    @Autowired
    private TypeMapper typeMapper;

    /**
     * 根据条件分页查询订单类别数据
     * @param type
     * @return
     */
    @Override
    public List<Type> selectTypeList(Type type) {
        return typeMapper.selectTypeList(type);
    }

    /**
     * 新增保存订单类别
     * @param type
     * @return
     */
    @Override
    public int insertType(Type type) {
        return typeMapper.insertType(type);
    }

    /**
     * 校定订单类别名称是否唯一
     * @param type
     * @return
     */
    @Override
    public String checkTypeNameUnique(Type type) {
        Long typeId = StringUtils.isNull(type.getTypeId()) ? -1L : type.getTypeId();
        Type info = typeMapper.checkTypeNameUnique(type.getTypeName());
        if (StringUtils.isNotNull(info) && info.getTypeId().longValue() != typeId.longValue()) {
            return CMSConstants.ORDER_TYPE_NAME_NOT_UNIQUE;
        }
        return CMSConstants.ORDER_TYPE_NAME_UNIQUE;
    }

    /**
     * 批量删除订单类别
     * @param ids
     * @return
     */
    @Override
    public int deleteTypeByIds(String ids) {
        Integer[] typeIds = Convert.toIntArray(ids);
        return typeMapper.deleteTypeByIds(typeIds);
    }

    /**
     * 根据类别ID查询类别信息
     * @param typeId
     * @return
     */
    @Override
    public Type selectTypeById(Integer typeId) {
        return typeMapper.selectTypeById(typeId);
    }

    /**
     * 修改订单类别信息
     * @param type
     * @return
     */
    @Override
    public int updateType(Type type) {
        return typeMapper.updateType(type);
    }
}
